package com.hsu.hsurpc.proxy;

import java.lang.reflect.Proxy;

/**
 * 服务代理工厂（用于创建代理对象）
 * @Author Hsu琛君珩
 * @Date 2024-09-18 11:19
 * @Description
 * @Version: v1.0.0
 */
public class ServiceProxyFactory {

    /**
     * 根据服务类获取代理对象
     *
     * @param serviceClass 服务接口
     * @return 动态代理对象
     * @param <T> 服务类型
     */
    public static <T> T getProxy(Class<T> serviceClass) {
        return (T) Proxy.newProxyInstance(
                serviceClass.getClassLoader(),                 // 使用服务接口的类加载器
                new Class[]{serviceClass},                     // 动态代理的接口类型
                new ServiceProxy()                             // 调用 `ServiceProxy` 处理实际的逻辑
        );
    }
}
